﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
* 项目名称 ：APP.Trading.Handler
* 项目描述 ：
* 类 名 称 ：RedeemHandler
* 类 描 述 ：
* 所在的域 ：DESKTOP-07DQ4D0
* 命名空间 ：APP.Trading.Handler
* 机器名称 ：DESKTOP-07DQ4D0 
* CLR 版本 ：4.0.30319.42000
* 作    者 ：Me.笨先生 (66623978)
* 创建时间 ：2018/2/14 10:31:20
* 更新时间 ：2018/2/14 10:31:20
* 版 本 号 ：v1.0.0.0
*******************************************************************
* Copyright @ admin 2018. All rights reserved.
*******************************************************************
//----------------------------------------------------------------*/
#endregion

using APP.Trading.Entity;
using APP.CommonLib.Utils;
using APP.CommonLib.Config;
using APP.CommonLib.XService;
using APP.CommonLib.Validation;

namespace APP.Trading.Handler
{
    /// <inheritdoc>
    ///     <cref></cref>
    /// </inheritdoc>
    /// <summary>
    /// 赎回
    /// </summary>
    public class RedeemHandler : ValidateBase, IServiceHandler
    {
        public ServiceResult Invoke(ServiceRequest req)
        {
            //接收参数
            var para = JsonHelper.JsonDeserialize<RedeemParameter>(req.data) ?? new RedeemParameter();
            para.MemberId = req.mid;
            if (para.Shares - (int)para.Shares > 0)
            {
                return ServiceResult.Exception(ServiceResultStatus.Tip, "赎回金额只可以是整数");
            }
            //基础参数验证
            var result = Validate(para, out var msg, true);
            if (result != ServiceResultStatus.Ok)
            {
                return ServiceResult.Exception(result, msg);
            }
            var redeemStop = ConfigManager.GetWebConfig("redeemStop", "false");
            if (redeemStop != "true") return ServiceEngine.Request("TradingService.Redeem", para);
            var redeemStopMsg = ConfigManager.GetWebConfig("redeemStopMsg", "系统维护，暂停赎回操作");

            return ServiceResult.Exception(ServiceResultStatus.Tip, redeemStopMsg);
        }
    }
}